Push notifications for updating multiple dynamic icon panels

ABSTRACT

The present application is directed to push notifications that can be used to dynamically update multiple icon panels. For example, the push notifications can be used to update two or more icon panels associated with the same application or two or more panels (i.e., sides) of a three-dimensional icon. In one embodiment, one or more push notifications can be used to independently update content on the panels. In another embodiment, a user can choose settings to assign panels that are to be updated using push notifications. A third party server can be automatically informed of an identification for the panel so that future push notifications incorporate the identification information.

FIELD

The present application relates to push notifications and, particularly,to using push notifications to dynamically update icons.

BACKGROUND

Push technology describes a style of Internet-based communication wherea request for a given transaction is initiated by a publisher or centralserver. By contrast, pull technology is where the request for thetransmission of information is initiated by a receiver or client. Pushservices are often based on information preferences expressed inadvance, which is often called a publish/subscribe model. In such amodel, a client subscribes to various information channels. Whenever newcontent is available on one of those channels, the server pushesinformation out to the user.

Synchronous conferencing and instant messaging are typical examples ofpush services. Chat messages and sometimes files are pushed to the userwhen they are received by the messaging service. Email is also awell-known push system. In typical Email configurations, an SMTPprotocol is used as a push protocol. However, the last step—from mailserver to desktop computer—typically uses a pull protocol like POP3 orIMAP. Modern e-mail clients make this step seem instantaneous byrepeatedly polling the mail server, frequently checking it for new mail.

Icons are small graphic symbols (usually simple pictures) that denoteprograms, commands, data files, etc. in a graphical user interface. Forexample, an icon can be used to launch an application (e.g., openMicrosoft® Word®). Dynamic icons are also known. For example, dynamicicons are icons that can be updated, changed or animated. However, anicon is small and the amount of information that can be displayed on thedynamic icon is limited.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

The present application is directed to push notifications that can beused to dynamically update multiple icon panels. For example, the pushnotifications can be used to update two or more icon panels associatedwith the same application or two or more panels (i.e., sides) of athree-dimensional icon.

In one embodiment, separate push notifications can be used toindependently update content on the panels. Alternatively, a single pushnotification that separately identifies the panels can be used.

In another embodiment, a user can choose settings to assign panels thatare to be updated using push notifications. A third party server can beautomatically informed of an identification for the panel so that futurepush notifications incorporate the identification information.

The foregoing and other objects, features, and advantages of theinvention will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example mobile phone that can be used for updating multipledynamic icon panels.

FIG. 2 is an embodiment of a system diagram used for updating multipledynamic icon panels.

FIG. 3 is an embodiment showing a user assigning panels to be updated.

FIG. 4 illustrates an embodiment of a three-dimensional dynamic iconwith multiple panels that can be updated and with the user activelyrotating the icon.

FIG. 5 illustrates the three-dimensional icon of FIG. 4 after rotation,with a different panel being viewed.

FIG. 6 illustrates different panels of FIG. 4 in a two-dimensionalrepresentation and an associated database showing identification foreach of the panels.

FIG. 7 is a flowchart of a method for updating multiple panelsindependently.

FIG. 8 is a flowchart of a method after receipt of a push notification.

FIG. 9 is a flowchart of a method for assigning a panel.

FIG. 10 is an embodiment wherein updates can be extended to a networkedenvironment.

DETAILED DESCRIPTION

FIG. 1 is a system diagram depicting an exemplary mobile device 100including a variety of optional hardware and software components, showngenerally at 102. Any components 102 in the mobile device cancommunicate with any other component, although not all connections areshown, for ease of illustration. The mobile device can be any of avariety of computing devices (e.g., cell phone, smartphone, handheldcomputer, Personal Digital Assistant (PDA), etc.) and can allow wirelesstwo-way communications with one or more mobile communications networks104, such as a cellular or satellite network.

The illustrated mobile device 100 can include a controller or processor110 (e.g., signal processor, microprocessor, ASIC, or other control andprocessing logic circuitry) for performing such tasks as signal coding,data processing, input/output processing, power control, and/or otherfunctions. An operating system 112 can control the allocation and usageof the components 102 and support for one or more application programs114. The operating system can include a push client service fordisplaying multiple dynamic icons associated with a single application,as described below. The application programs can include common mobilecomputing applications (e.g., email applications, calendars, contactmanagers, web browsers, messaging applications), or any other computingapplication.

The illustrated mobile device 100 can include memory 120. Memory 120 caninclude non-removable memory 122 and/or removable memory 124. Thenon-removable memory 122 can include RAM, ROM, flash memory, a harddisk, or other well-known memory storage technologies. The removablememory 124 can include flash memory or a Subscriber Identity Module(SIM) card, which is well known in GSM communication systems, or otherwell-known memory storage technologies, such as “smart cards.” Thememory 120 can be used for storing data and/or code for running theoperating system 112 and the applications 114. Example data can includeweb pages, text, images, sound files, video data, or other data sets tobe sent to and/or received from one or more network servers or otherdevices via one or more wired or wireless networks. The memory 120 canbe used to store a subscriber identifier, such as an InternationalMobile Subscriber Identity (IMSI), and an equipment identifier, such asan International Mobile Equipment Identifier (IMEI). Such identifierscan be transmitted to a network server to identify users and equipment.

The mobile device 100 can support one or more input devices 130, such asa touch screen 132, microphone 134, camera 136, physical keyboard 138and/or trackball 140 and one or more output devices 150, such as aspeaker 152 and a display 154. Other possible output devices (not shown)can include piezoelectric or other haptic output devices. Some devicescan serve more than one input/output function. For example, touchscreen132 and display 154 can be combined in a single input/output device.

A wireless modem 160 can be coupled to an antenna (not shown) and cansupport two-way communications between the processor 110 and externaldevices, as is well understood in the art. The modem 160 is showngenerically and can include a cellular modem for communicating with themobile communication network 104 and/or other radio-based modems (e.g.,Bluetooth or Wi-Fi). The wireless modem 160 is typically configured forcommunication with one or more cellular networks, such as a GSM networkfor data and voice communications within a single cellular network,between cellular networks, or between the mobile device and a publicswitched telephone network (PSTN).

The mobile device can further include at least one input/output port180, a power supply 182, a satellite navigation system receiver 184,such as a Global Positioning System (GPS) receiver, an accelerometer186, and/or a physical connector 190, which can be a USB port, IEEE 1394(FireWire) port, and/or RS-232 port. The illustrated components 102 arenot required or all-inclusive, as any components can deleted and othercomponents can be added.

FIG. 2 shows an embodiment of a system that can be used for pushnotifications. A third-party server 210 can be associated with anapplication, which is available on a mobile phone 220. The third-partyserver 210 can send messages via a mobile phone push-notification server230. The push-notification server 230 merely forwards the pushnotification to the appropriate mobile phone, as is well-understood inthe art. An operating system 240 on the mobile phone 220 includes apush-notification client that receives the push notification. The pushnotification generally includes, amongst other things, an identificationof a panel and content to be updated. The panel is typically associatedwith a dynamic icon. The push-notification client checks a database 250,which can be positioned locally on the mobile phone, to determine if theidentification matches a dynamic icon panel on the mobile phone. Thedynamic icon panel is typically displayed as a substantiallytwo-dimensional panel that, generally, cannot be rotatedthree-dimensionally or that is a two-dimensional portion of a rotatablethree-dimensional image. If a match is found, then the push-notificationclient calls an application programming interface (API) 260 to rendercontent on the panel.

FIG. 3 shows an example of how multiple panels associated with oneapplication are assigned. An example user interface window 310associated with a weather application running on the mobile phone can beused to receive user input regarding assigning panels. As shown at 320,the user selects a button associated with a city, such as Portland, tocreate the assignment. When the assignment is made, a panel, such aspanel 330, can be added to the default screen (sometimes called the homescreen or start screen) of the user interface. Additionally, a database340 can be updated to assign the new panel an identification 350 that islinked to the associated application, as shown at 360. The linking canbe a sub-field in the database, metadata, a property of the application,etc. There are many different techniques that can be used to identifyand link the new panel to the associated application. As shown at 370,the database information can also be transmitted to a third-party serverso that the third-party server can use the identification information ina push notification. For example, if the third-party server issues aweather update for Portland, the identification 350 can be used toindependently update the Portland panel 330. A second panel 380, whichis also associated with the same application 360, also has anidentification 390. Both panels 330 and 380 can have independent contentand can be updated at different times and with different content. Thus,the push-notification server can update dynamic icon panelsindependently.

FIG. 4 is an example of a three-dimensional dynamic icon 410 on adefault screen 420 of a mobile phone 430. The three-dimensional dynamicicon 410 includes multiple panels that come into view when the icon isrotated. Although the three-dimensional icon is shown as a cube, it cantake other forms, such as a cylinder, or any other three-dimensionalgeometric shape, wherein the dynamic panels are the faces of thethree-dimensional shape. As shown by direction arrow 440, the user canslide a finger across the touch screen of the mobile phone in order torotate the three-dimensional dynamic icon 410. Currently, panel 450displaying Seattle weather is displayed.

FIG. 5 shows the three-dimensional icon 410, with panel 500 displayedafter the rotation. The panel 500 has different content displayed thanthe panel 450 of FIG. 4. Indeed, each panel associated with theapplication can have different content and can be individuallyidentified by a push notification for independent updating. As with anyof the embodiments described herein, any number of panels can beassociated with a single application.

FIG. 6 shows the three-dimensional icon 410 flattened into atwo-dimensional object 600 with all of the panels 610 displayed. Thepanels are labeled as Panels A-F. A corresponding database 620 is shownwith each panel assigned an identification, shown generally at 630. Theidentifications 630 are linked to an associated application 640. Asshown by dots 650, other applications, such as shown at 660, can alsohave dynamic icons with multiple independently updatable panelsassociated therewith.

FIG. 7 shows a flowchart of a method for updating panels of anapplication individually. In process block 710, at least first andsecond icon panels are associated with a single application. In processblock 720, at least one push notification is received to update thefirst panel and the second panel. The push notification can be a singlepush notification with two separate identifiers to identify each panelindividually or there can be separate push notifications (e.g., firstand second push notifications) to update content on each panelseparately. In process block 730, the content of the first and secondpanels are updated independently.

FIG. 8 is a flowchart of an embodiment of a method providing furtherdetails of how to implement updating content on the panelsindependently. In process block 810, once the push notification isreceived, a database can be accessed. For example, depending on achannel associated with the push notification, an application'sassociated fields can be accessed by searching for the application inthe database. In process block 820, an identifier associated with thepush notification is extracted therefrom and is compared to sub-fieldsin the database to determine if there is an identifier in the databasethat matches the identifier in the push notification. In decision block830, if there is a match, then an API is called (process block 840) inorder to render the content provided in the push notification. If thereis not a match, then the push notification is ignored (process block850).

FIG. 9 is a flowchart of an embodiment of a method for adding a dynamicpanel to the user interface. In process block 910, user input isreceived to assign content to one of the panels of a dynamic icon or toadd a dynamic icon to the display. Example user input can be the userselecting content updates associated with an application. In processblock 920, a panel is automatically added to the user interface. Thepanel can be a two-dimensional dynamic icon or a panel of athree-dimensional, rotatable dynamic icon. In process block 930, a panelidentification is added to a database under an entry associated with theapplication. The panel identification identifies or points to the panelthat was added to the user interface. In process block 940, the panelidentification is sent to a third-party server associated with theapplication. Thus, when the third-party server wants to update contenton the dynamic panel, it can do so using the panel identification.

FIG. 10 illustrates a generalized example of a suitable implementationenvironment 1000 in which described embodiments, techniques, andtechnologies may be implemented.

In example environment 1000, various types of services (e.g., computingservices) are provided by a cloud 1010. For example, the cloud 1010 cancomprise a collection of computing devices 1030, 1040, 1050, which maybe located centrally or distributed, that provide cloud-based servicesto various types of users and devices connected via a network such asthe Internet. The implementation environment 1000 can be used indifferent ways to accomplish computing tasks. For example, some tasks(e.g., processing user input and presenting a user interface) can beperformed on local computing devices (e.g., connected devices 1030,1040, 1050) while other tasks (e.g., storage of data to be used insubsequent processing) can be performed in the cloud 1010. For example,a database with the panel identifications can be stored in the cloud1000. Additionally, all content updates can come from the cloud and beprovided across all devices so that all of the connected devices have asimilar user interface including similar dynamic icons.

In example environment 1000, the cloud 1010 provides services forconnected devices 1030, 1040 1050 with a variety of screen capabilities.Connected device 1030 represents a device with a computer screen 1035(e.g., a mid-size screen). For example, connected device 1030 could be apersonal computer such as desktop computer, laptop, notebook, netbook,or the like. Connected device 1040 represents a device with a mobiledevice screen 1045 (e.g., a small size screen). For example, connecteddevice 1040 could be a mobile phone, smart phone, personal digitalassistant, tablet computer, and the like. Connected device 1050represents a device with a large screen 1055. For example, connecteddevice 1050 could be a television screen (e.g., a smart television) oranother device connected to a television (e.g., a set-top box or gamingconsole) or the like. One or more of the connected devices 1030, 1040,1050 can include touch screen capabilities. Touchscreens can acceptinput in different ways. For example, capacitive touchscreens detecttouch input when an object (e.g., a fingertip or stylus) distorts orinterrupts an electrical current running across the surface. As anotherexample, touchscreens can use optical sensors to detect touch input whenbeams from the optical sensors are interrupted. Physical contact withthe surface of the screen is not necessary for input to be detected bysome touchscreens. Devices without screen capabilities also can be usedin example environment 1000. For example, the cloud 1010 can provideservices for one or more computers (e.g., server computers) withoutdisplays.

Services can be provided by the cloud 1010 through service providers1020, or through other providers of online services (not depicted). Forexample, cloud services can be customized to the screen size, displaycapability, and/or touch screen capability of a particular connecteddevice (e.g., connected devices 1030, 1040, 1050).

In example environment 1000, the cloud 1010 provides the technologiesand solutions described herein to the various connected devices 1030,1040, 1050 using, at least in part, the service providers 1020. Forexample, the service providers 1020 can provide a centralized solutionfor various cloud-based services. The service providers 1020 can manageservice subscriptions for users and/or devices (e.g., for the connecteddevices 1030, 1040, 1050 and/or their respective users).

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially may in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached figures may not show the various ways in whichthe disclosed methods can be used in conjunction with other methods.

Any of the disclosed methods can be implemented as computer-executableinstructions stored on one or more computer-readable storage media(e.g., non-transitory computer-readable media, such as one or moreoptical media discs, volatile memory components (such as DRAM or SRAM),or nonvolatile memory components (such as hard drives)) and executed ona computer (e.g., any commercially available computer, including smartphones or other mobile devices that include computing hardware). Any ofthe computer-executable instructions for implementing the disclosedtechniques as well as any data created and used during implementation ofthe disclosed embodiments can be stored on one or more computer-readablemedia (e.g., non-transitory computer-readable media). Thecomputer-executable instructions can be part of, for example, adedicated software application or a software application that isaccessed or downloaded via a web browser or other software application(such as a remote computing application). Such software can be executed,for example, on a single local computer (e.g., any suitable commerciallyavailable computer) or in a network environment (e.g., via the Internet,a wide-area network, a local-area network, a client-server network (suchas a cloud computing network), or other such network) using one or morenetwork computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.For instance, the disclosed technology can be implemented by softwarewritten in C++, Java, Perl, JavaScript, Adobe Flash, or any othersuitable programming language. Likewise, the disclosed technology is notlimited to any particular computer or type of hardware. Certain detailsof suitable computers and hardware are well known and need not be setforth in detail in this disclosure.

Furthermore, any of the software-based embodiments (comprising, forexample, computer-executable instructions for causing a computer toperform any of the disclosed methods) can be uploaded, downloaded, orremotely accessed through a suitable communication means. Such suitablecommunication means include, for example, the Internet, the World WideWeb, an intranet, software applications, cable (including fiber opticcable), magnetic communications, electromagnetic communications(including RF, microwave, and infrared communications), electroniccommunications, or other such communication means.

The disclosed methods, apparatus, and systems should not be construed aslimiting in any way. Instead, the present disclosure is directed towardall novel and nonobvious features and aspects of the various disclosedembodiments, alone and in various combinations and subcombinations withone another. The disclosed methods, apparatus, and systems are notlimited to any specific aspect or feature or combination thereof, nor dothe disclosed embodiments require that any one or more specificadvantages be present or problems be solved.

In view of the many possible embodiments to which the principles of thedisclosed invention may be applied, it should be recognized that theillustrated embodiments are only preferred examples of the invention andshould not be taken as limiting the scope of the invention. Rather, thescope of the invention is defined by the following claims. We thereforeclaim as our invention all that comes within the scope of these claims.

1. A method of updating a computing device, comprising: providing atleast first and second icon panels associated with a single application;and updating content received in at least one push notification on thefirst and second icon panels independently of each other.
 2. The methodof claim 1, wherein the first and second icon panels are separatesubstantially two-dimensional icons located on a display of thecomputing device.
 3. The method of claim 1, wherein the first and secondicon panels are separate panels of a multi-panel, three-dimensionalicon.
 4. The method of claim 1, further including updating the first andsecond icon panels without the associated application being opened. 5.The method of claim 1, further including receiving a selection from auser to add the second icon panel to be updated, assigning an identifierthereto in response to the selection, and sending the assignedidentifier to a third party push-notification server that services theapplication.
 6. The method of claim 1, further including receiving afirst push notification associated with the application, the first pushnotification including a first identifier of the first icon panel to beupdated and content to be added to the first icon panel; receiving asecond push notification associated with the application, the secondpush notification including a second identifier of the second icon panelto be updated and content to be added to the second icon panel.
 7. Themethod of claim 1, further including: storing the first and secondidentifiers in a database associated with the application; uponreceiving the first push notification, accessing the database for theapplication and determining if the first identifier is associated withthe application; wherein the updating only occurs if the firstidentifier is determined to be associated with the application.
 8. Acomputer-readable storage having instructions thereon for implementingthe method of claim
 1. 9. A method of updating a mobile phone,comprising: providing an application having two or more dynamic iconpanels associated therewith; receiving at least one push notificationthat independently identifies content updates to be applied to the twoor more dynamic icon panels; and in response to the received at leastone push notification, updating the two or more dynamic icon panels sothat different content is displayed on each dynamic icon panel.
 10. Themethod of claim 9, wherein the two or more dynamic icon panels are onseparate icons or a single, multi-dimensional dynamic icon having two ormore panels.
 11. The method of claim 9, wherein at least one pushnotification includes a dynamic icon identification and the contentidentified in the push notification.
 12. The method of claim 11, whereinat least one push push notification further includes a panel associatedwith the dynamic icon identification.
 13. The method of claim 11,further including checking a database to determine if the dynamic iconidentification is located in the database and, if so, rendering thecontent in the push notification using an application programminginterface.
 14. The method of claim 9, wherein the dynamic icons or thetwo or more panels are updated while the application is closed.
 15. Themethod of claim 9, further including receiving user input to assigncontent to one of the dynamic icon panels.
 16. The method of claim 15,further including sending information about the assignment of content toa server computer that issues the push notification.
 17. The method ofclaim 9, wherein the updating is performed by a client service withinthe operating system.
 18. The method of claim 16, wherein the clientservice uses an API to render content from the push notification on oneof the dynamic icons or one of the panels having an identification thatmatches that in the push notification.
 19. A method of updating a mobilephone, comprising: displaying multiple dynamic icons associated with asingle application, each dynamic icon having an identificationassociated therewith; receiving a push notification from a servercomputer to update one of the multiple dynamic icons, the pushnotification including the identification of a panel of the dynamic iconto be updated; checking a database containing attributes of theapplication including the dynamic icon identifications; determiningwhich dynamic icon is associated with the push notification; renderingcontent from the push notification on the dynamic icon.
 20. The methodof claim 19, further including: receiving user input to assign contentto one of the dynamic icons; adding a dynamic icon to the display;adding an identification of the dynamic icon to a database; and sendingthe identification to a third-party server.